using System.Collections.Generic;
using Karma.Framework.Core.Metadata.Description;
using Karma.Framework.Core.Modules.Reports.Definition;
using Karma.Framework.Core.Modules.Reports.Repository;
using Karma.Framework.Core.Services;

namespace Karma.Framework.Core.Modules.Reports.Service
{
    public interface IReportService : IService
    {
        IList<object> GetEntityProperty(string entityName, string propertyName);

        IList<Report> GetReports(string entityName);

        EntityDescription GetDescription(string entityName);

        ReportResult ExecuteListReport(ReportSpecification specification);

        ReportResult ExecuteGraphReport(ReportSpecification specification);
    }
}